<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>小兔鲜儿 - 新鲜 惠民 快捷!</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="renderer" content="webkit">
  <link rel="shortcut icon" href="./favicon.ico">
  <link rel="stylesheet" href="./css/common.css">
  <link rel="stylesheet" href="./css/register.css">
  <link rel="stylesheet" href="https://at.alicdn.com/t/font_2143783_iq6z4ey5vu.css">
</head>

<body>
  <!-- 项部导航 -->
  <div class="xtx_topnav">
    <div class="wrapper">
      <!-- 顶部导航 -->
      <ul class="xtx_navs">
        <li>
          <a href="./login.html">请先登录</a>
        </li>
        <li>
          <a href="./register.html">免费注册</a>
        </li>
        <li>
          <a href="./center-order.html">我的订单</a>
        </li>
        <li>
          <a href="./center.html">会员中心</a>
        </li>
        <li>
          <a href="javascript:;">帮助中心</a>
        </li>
        <li>
          <a href="javascript:;">在线客服</a>
        </li>
        <li>
          <a href="javascript:;">
            <i class="mobile sprites"></i>
            手机版
          </a>
        </li>
      </ul>
    </div>
  </div>
  <!-- 头部 -->
  <div class="xtx_header">
    <div class="wrapper">
      <!-- 网站Logo -->
      <h1 class="xtx_logo"><a href="/">小兔鲜儿</a></h1>
      <!-- 主导航 -->
      <div class="xtx_navs">
        <ul class="clearfix">
          <li>
            <a href="./index.html">首页</a>
          </li>
          <li>
            <a href="./category01.html">生鲜</a>
          </li>
          <li>
            <a href="./category01.html">美食</a>
          </li>
          <li>
            <a href="./category01.html">餐厨</a>
          </li>
          <li>
            <a href="./category01.html">电器</a>
          </li>
          <li>
            <a href="./category01.html">居家</a>
          </li>
          <li>
            <a href="./category01.html">洗护</a>
          </li>
          <li>
            <a href="./category01.html">孕婴</a>
          </li>
          <li>
            <a href="./category01.html">服装</a>
          </li>
        </ul>
      </div>
      <!-- 站内搜索 -->
      <div class="xtx_search clearfix">
        <!-- 购物车 -->
        <a href="./cart-none.html" class="xtx_search_cart sprites">
          <i>2</i>
        </a>
        <!-- 搜索框 -->
        <div class="xtx_search_wrapper">
          <input type="text" placeholder="搜一搜" onclick="location.href='./search.html'">
        </div>
      </div>
    </div>
  </div>
  <div class="xtx-wrapper">
    <div class="container">
      <!-- 卡片 -->
      <div class="xtx-card">
        <h3>新用户注册</h3>
        <form class="xtx-form">
          <div data-prop="username" class="xtx-form-item">
            <span class="iconfont icon-zhanghao"></span>
            <input name="username" type="text" placeholder="设置用户名称">
            <span class="msg"></span>
          </div>
          <div data-prop="phone" class="xtx-form-item">
            <span class="iconfont icon-shouji"></span>
            <input name="phone" type="text" placeholder="输入手机号码  ">
            <span class="msg"></span>
          </div>
          <div data-prop="code" class="xtx-form-item">
            <span class="iconfont icon-zhibiaozhushibiaozhu"></span>
            <input name="code" type="text" placeholder="短信验证码">
            <span class="msg"></span>
            <a class="code" href="javascript:;">发送验证码</a>
          </div>
          <div data-prop="password" class="xtx-form-item">
            <span class="iconfont icon-suo"></span>
            <input name="password" type="password" placeholder="设置6至20位字母、数字和符号组合">
            <span class="msg"></span>
          </div>
          <div data-prop="confirm" class="xtx-form-item">
            <span class="iconfont icon-suo"></span>
            <input name="confirm" type="password" placeholder="请再次输入上面密码">
            <span class="msg"></span>
          </div>
          <div class="xtx-form-item pl50">
            <i class="iconfont icon-queren"></i>
            已阅读并同意<i>《用户服务协议》</i>
          </div>
          <div class="xtx-form-item">
            <button class="submit">下一步</button>
            <!-- <a class="submit" href="javascript:;">下一步</a> -->
          </div>
        </form>
      </div>
    </div>
  </div>
  <!-- 公共底部 -->
  <div class="xtx_footer clearfix">
    <div class="wrapper">
      <!-- 联系我们 -->
      <div class="contact clearfix">
        <dl>
          <dt>客户服务</dt>
          <dd class="chat">在线客服</dd>
          <dd class="feedback">问题反馈</dd>
        </dl>
        <dl>
          <dt>关注我们</dt>
          <dd class="weixin">公众号</dd>
          <dd class="weibo">微博</dd>
        </dl>
        <dl>
          <dt>下载APP</dt>
          <dd class="qrcode">
            <img src="./uploads/qrcode.jpg">
          </dd>
          <dd class="download">
            <span>扫描二维码</span>
            <span>立马下载APP</span>
            <a href="javascript:;">下载页面</a>
          </dd>
        </dl>
        <dl>
          <dt>服务热线</dt>
          <dd class="hotline">
            400-0000-000
            <small>周一至周日 8:00-18:00</small>
          </dd>
        </dl>
      </div>
    </div>
    <!-- 其它 -->
    <div class="extra">
      <div class="wrapper">
        <!-- 口号 -->
        <div class="slogan">
          <a href="javascript:;" class="price">价格亲民</a>
          <a href="javascript:;" class="express">物流快捷</a>
          <a href="javascript:;" class="quality">品质新鲜</a>
        </div>
        <!-- 版权信息 -->
        <div class="copyright">
          <p>
            <a href="javascript:;">关于我们</a>
            <a href="javascript:;">帮助中心</a>
            <a href="javascript:;">售后服务</a>
            <a href="javascript:;">配送与验收</a>
            <a href="javascript:;">商务合作</a>
            <a href="javascript:;">搜索推荐</a>
            <a href="javascript:;">友情链接</a>
          </p>
          <p>CopyRight &copy; 小兔鲜儿</p>
        </div>
      </div>
    </div>
  </div>
  <script>
// https://blog.csdn.net/weixin_47304332/article/details/124934620
const forms = document.querySelectorAll(".xtx-form-item");            //获取表单
var code;           //存储验证码

/**
 * 获取验证码，并倒计时
 */
forms[2].addEventListener("click",function (e){
        if (e.target.tagName === "A" && e.target.className === "code"){     //事件委托，获取a标签的单击
            var count = 5;
            var time;
            e.target.className = "code ing";
            code = parseInt(Math.random() * (9999 - 1000 + 1) + 1000 );
            alert("验证码为：" + code);
            time = setInterval(function (){                 //添加倒计时效果
                e.target.innerHTML = count + "秒后重新获取";
                if (count == 0){
                    count = 5;
                    e.target.className = "code"
                    e.target.innerHTML = "重新获取"
                    clearInterval(time);
                }
                count--;
            },1000)
            }
},true);


/**
 * 协议勾选
 */
forms[5].addEventListener("click",function (e){
    if (e.target.tagName === "I" && e.target.className != ""){
        if (e.target.className === "iconfont icon-queren"){
            e.target.className = "iconfont icon-queren2";
        } else {
            e.target.className = "iconfont icon-queren";
        }
    }
},false);


/**
 * 检查每个控件的值
 */
document.querySelector("form[class='xtx-form']").addEventListener("input",function (e){
    var bool;
    switch (e.target.name){         //利用事件委托，获取每个不同的控件
        case "username": {
            e.target.nextElementSibling.innerHTML = (testUsername() ? "" : "用户名格式错误，请重新输入。");
        };break;
        case "phone": {
            e.target.nextElementSibling.innerHTML = (testNumber() ? "" : "手机号格式错误，请重新输入。");
        };break;
        case "code": {
            e.target.nextElementSibling.innerHTML = (testCode() ? "" : "验证码错误。");
        };break;
        case "password": {
            e.target.nextElementSibling.innerHTML = (testPassword() ? "" : "密码格式错误，请重新输入。");
        };break;
        case "confirm": {
            e.target.nextElementSibling.innerHTML = (testRepassword() ? "" : "两次密码不一致，请重新输入。");
        };break;
    }

},false)


/**
 * 提交检查表单信息
 * @returns {boolean}
 */
document.querySelectorAll(".xtx-form-item")[6].firstElementChild.onclick = function (){

    if(!testIconfont()){
        alert("请在阅读协议，并同意！")
        return false;
    }
    if (testUsername() && testNumber() && testPassword() && testRepassword()){
        alert("提交成功");
        return true;
    }else{
        alert("信息为空或格式不正确，请检查！")
        return false;
    }
}




/**
 * 检查用户名
 * @returns {boolean}
 */
function testUsername(){
    var input = forms[0].querySelector("input");
    return /^[a-zA-Z0-9-_]{6,10}$/.test(input.value);
}


/**
 * 检查手机号
 * @returns {boolean}
 */
function testNumber(){
    var input = forms[1].querySelector("input");
    return /^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/.test(input.value)
}


/**
 * 检查验证码
 * @returns {boolean}
 */
function testCode(){
    var input = forms[2].querySelector("input");
    return input.value == code;
}


/**
 * 检查密码
 * @returns {boolean}
 */
function testPassword(){
    var input = forms[3].querySelector("input");
    return /^[a-zA-Z0-9-_]{6,20}$/.test(input.value);
}


/**
 * 检查密码一致
 * @returns {boolean}
 */
function testRepassword(){
    var input = forms[4].querySelector("input");
    return input.value === forms[3].querySelector("input").value;
}


/**
 * 检查勾选协议
 * @returns {boolean}
 */
function testIconfont(){
    return forms[5].firstElementChild.className === "iconfont icon-queren2";
}


// (function () {
//       // 1.验证码模块
//       const code = document.querySelector('.code')
//       // 设置一个开关变量
//       let flag = true;
//       code.addEventListener('click', function () {
//         if (flag === true) {
//           flag = false;
//           let i = 5;
//           code.innerHTML = `0${i}秒后重新获取`
//           let n = setInterval(function () {
//             i--
//             code.innerHTML = `0${i}秒后重新获取`
//             // 0秒时要清除定时器
//             if (i === 0) {
//               clearInterval(n)
//               code.innerHTML = `重新获取`
//               flag = true
//             }
//           }, 1000)
//         }
//       })
//     })()

//     // 2.验证用户名
//     const username = document.querySelector('[name = "username"]')
//     // 获取用户名value，判断是否符合规则，利用表单的change事件
//     username.addEventListener('change', checkName)
//     function checkName() {
//       // 正则表达式
//       const reg = /^[a-zA-Z0-9-_]{6,16}$/
//       console.log(reg.test(username.value));
//       // 判断结果，来显示提示信息
//       const msg = username.nextElementSibling;
//       if (!reg.test(username.value)) {
//         msg.innerHTML = '需要6-16位的字母或数字或-_'
//         return false;
//       } else {
//         // 验证正确后需要清空
//         msg.innerHTML = ''
//         return true;
//       }
//     }

//     // 3.验证电话号码
//     const phone = document.querySelector('[name = "phone"]')
//     // 获取用户名value，判断是否符合规则，利用表单的change事件
//     phone.addEventListener('change', checkPhone)
//     function checkPhone() {
//       // 正则表达式
//       const reg = /^1[0-9]{10}$/
//       console.log(reg.test(phone.value));
//       // 判断结果，来显示提示信息
//       const msg = phone.nextElementSibling;
//       if (!reg.test(phone.value)) {
//         msg.innerHTML = '需要11位的数字'
//         return false;
//       } else {
//         // 验证正确后需要清空
//         msg.innerHTML = ''
//         return true;
//       }
//     }

//     // 4.验证验证码
//     const codeNum = document.querySelector('[name = "code"]')
//     // 获取用户名value，判断是否符合规则，利用表单的change事件
//     codeNum.addEventListener('change', checkCode)
//     function checkCode() {
//       // 正则表达式
//       const reg = /^\d{6}$/
//       console.log(reg.test(codeNum.value));
//       // 判断结果，来显示提示信息
//       const msg = codeNum.nextElementSibling;
//       if (!reg.test(codeNum.value)) {
//         msg.innerHTML = '需要6位的数字'
//         return false;
//       } else {
//         // 验证正确后需要清空
//         msg.innerHTML = ''
//         return true;
//       }
//     }

//     // 5.验证密码
//     const password = document.querySelector('[name = "password"]')
//     // 获取用户名value，判断是否符合规则，利用表单的change事件
//     password.addEventListener('change', checkPwd)
//     function checkPwd() {
//       // 正则表达式
//       const reg = /^\S{6,20}$/
//       console.log(reg.test(password.value));
//       // 判断结果，来显示提示信息
//       const msg = password.nextElementSibling;
//       if (!reg.test(password.value)) {
//         msg.innerHTML = '需要6至20位的数字、字母和符号组合'
//         return false;
//       } else {
//         // 验证正确后需要清空
//         msg.innerHTML = ''
//         return true;
//       }
//     }

//     // 6.验证重复密码
//     const confirms = document.querySelector('[name = "confirm"]')
//     // 获取用户名value，判断是否符合规则，利用表单的change事件
//     confirms.addEventListener('change', checkConfirm)
//     function checkConfirm() {
//       // 正则表达式
//       const reg = /^\S{6,20}$/
//       console.log(reg.test(confirms.value));
//       // 判断结果，来显示提示信息
//       const msg = confirms.nextElementSibling;
//       if (!reg.test(confirms.value)) {
//         msg.innerHTML = '两次输入的密码不一致'
//         return false;
//       } else {
//         // 验证正确后需要清空
//         msg.innerHTML = ''
//         return true;
//       }
//     }

//     // 7.勾选服务的事件
//     const queren = document.querySelector('.icon-queren')
//     queren.addEventListener('click', function () {
//       queren.classList.toggle('icon-queren2')
//     })

//     // 8.下一步的验证
//     const form = document.querySelector('form')
//     form.addEventListener('submit', function (e) {
//       // 如果没有勾选服务，就阻止提交
//       if (!queren.classList.contains('icon-queren2')) {
//         alert('请勾选服务协议')
//         // 阻止提交
//         e.preventDefault()
//       }

//       // 如果用户名返回false就要阻止
//       if (checkName() === false) {
//         e.preventDefault()
//       }

//       // 如果手机号返回false就要阻止
//       if (checkPhone() === false) {
//         e.preventDefault()
//       }

//       // 如果验证码返回false就要阻止
//       if (checkCode() === false) {
//         e.preventDefault()
//       }

//       // 如果密码返回false就要阻止
//       if (checkPwd() === false) {
//         e.preventDefault()
//       }

//       // 如果密码返回false就要阻止
//       if (checkConfirm() === false) {
//         e.preventDefault()
//       }
//     })
  </script>
</body>

</html>